// 函数类型
// 基本定义  function 方法名(参数a:类型):返回值类型{}
// 函数表达式
// 1:  (参数a:类型):返回值类型
// 2:  const 变量名:(参数a:类型)=>类型=(参数)=>{ return 值}
// 类型别名结合函数表达式
// type FnType=(参数a:类型)=>类型
// const 变量名:FnType=(参数)=>{ return 值}

// 特点情况：参数可选填     function 方法名(参数a?:类型):返回值类型{}
// 注意点：有多个参数的情况下，只有后面的是可选，前面才可是可选
// void 代表没有返回值
// 1:没有return  2:只写了return 3:写return undefined
// undefined不是void

function add (num1: number, num2: number): number {
  return num1 + num2
}
console.log(add(1, 2))

const add2 = (num1: number, num2: number): number => {
  return num1 + num2
}
console.log(add2(3, 3))

type FnType = (a: number, b: number) => number
const add3: FnType = (num1, num2) => {
  return num1 + num2
}

function mySlice (start?: number, end?: number): void {
  console.log(start, end)
}
mySlice(1, 2)

// void
function test (a: number, b: number): void {
  console.log(a, b)
  return undefined
}
test(1, 2)

export {}
